while controller